<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>三维场景</title>
  <script src="../scripts/build/three.js"></script>
  <script src="../scripts/OrbitControls.js"></script>
</head>
<body>
  <script>
    /* 创建场景对象 */
    let scene = new THREE.Scene();
    /* 创建一个立方几何体Geometry */
    let geometry = new THREE.BoxGeometry(100,100,100);
    /* 材质对象 */
    let material = new THREE.MeshLambertMaterial({
      color:0x0000ff
    });
    /* 网络模型对象 */
    let mesh = new THREE.Mesh(geometry, material);
    /* 将模型添加到场景中 */
    scene.add(mesh);

    /**
     * 光源设置
     */
    //点光源
    var point = new THREE.PointLight(0xffffff);
    point.position.set(300, 400, 300); //点光源位置上  // 每个参数控制不同的面的亮度
    scene.add(point); //点光源添加到场景中
    //环境光
    var ambient = new THREE.AmbientLight(0x444444);
    scene.add(ambient);
    /* 相机设置 */
    var width = window.innerWidth; //窗口宽度
    var height = window.innerHeight; //窗口高度
    var k = width / height; //窗口宽高比
    var s = 200; //三维场景显示范围控制系数，系数越大，显示的范围越大
    //创建相机对象 （正交相机，保持比例）
    var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
    camera.position.set(100, 100, 200); //设置相机位置
    camera.lookAt(scene.position); //设置相机方向(指向的场景对象)
    /**
     * 创建渲染器对象
     */
    var renderer = new THREE.WebGLRenderer({antialias:true});
    renderer.setSize(width, height);//设置渲染区域尺寸
    renderer.setClearColor(0xb9d3ff, 1); //设置背景颜色
    document.body.appendChild(renderer.domElement); //body元素中插入canvas对象
    //执行渲染操作   指定场景、相机作为参数
    //renderer.render(scene, camera);
    function render() {
      renderer.render(scene,camera);//执行渲染操作
      mesh.rotateY(0.01);//每次绕y轴旋转0.01弧度
      //requestAnimationFrame(render);//请求再次执行渲染函数render
    }
    setInterval(render,20);
  </script>
</body>
</html>